using System;
using System.Threading;

namespace your_app
{

    class InstanceUnique : IDisposable
    {
        private readonly Mutex mMutex;
        private bool _mMutexOwned;


        public InstanceUnique(string name)
        {
            mMutex = new Mutex(false, name);
            _mMutexOwned = false;
        }


        public bool IsRunning()
        {

            _mMutexOwned = mMutex.WaitOne(0, true);
            return !(_mMutexOwned);
        }


        public void Dispose()
        {
            if (_mMutexOwned)
                mMutex.ReleaseMutex();
        }
    }
}



// put this in ur class or form

public static void Main()
        {
            AntiDebug.CheckDebug();
            Mo.Dispose();
            InstanceUnique instanceUnique = new InstanceUnique("{essaistart}");
                if (instanceUnique.IsRunning())
                {
                    // do nothing
                }
                else
            {
              // your code
             }
}